<!--
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
° 	HONORE Perrine
° 	GIOVANETTI Romain
°
° 	Master 2 - E-services TWA Project
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
-->
<!doctype html>
<html>
<head>
	<meta charset='UTF-8' />
	<style>
		input, textarea {border:1px solid #CCC;margin:0px;padding:0px}

		#body {max-width:800px;margin:auto}
		#log {width:100%;height:400px}
		#message {width:100%;line-height:20px}
	</style>
	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
	<script type="text/javascript" src="websocketclient.js"></script>
	<script type="text/javascript" src="./javascript/tools.js"></script>
	<script type="text/javascript" src="./javascript/settings.js"></script>
	<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/sha1.js"></script>
	<script>
		var Server;
		var ServerId;
		var Login;
		var MotdePasse;
		var myId = 0;

		function PromptMessage() {
		    ServerId = prompt("Numéro du serveur", "1");
		}

		function PromptLogin() {
		    /* Login = prompt("Veuillez entrer votre login", ""); */
		    Login = "Alice";
		}


		function PromptPassword() {
		    /* MotdePasse = prompt("Veuillez entrer votre mot de passe", ""); */
		    MotdePasse = "b6c44750620e42e2ae9cc4b0aa9fa14727e66549";
		}

		function demandeDeConversation()
		{
			var userNickname = prompt("Veuillez entrer votre destinataire", ""); 
			send("/getConversationWith#" + userNickname);
		}

		function envoiduMessage()
		{
			var MessageAEnvoyer = prompt("Veuillez ecrire votre message", "");
			var destinataire = prompt("Veuillez le nom du destinataire", "");
			send("/messageAEnvoyerA#" + destinataire + "#" + MessageAEnvoyer);
		}

		function log( text ) {
			$log = $('#log');
			//Add text to log
			$log.append(($log.val()?"\n":'')+text);
			//Autoscroll
			$log[0].scrollTop = $log[0].scrollHeight - $log[0].clientHeight;
		}

		function send( text ) {
			Server.send( 'message', text );
		}

		$(document).ready(function() {
			log('Connecting...');
			Server = new FancyWebSocket('ws://127.0.0.1:9300');

			$('#message').keypress(function(e) {
				if ( e.keyCode == 13 && this.value ) {
					log( 'You: ' + this.value );
					send( this.value );

					$(this).val('');
				}
			});

			//Let the user know we're connected
			Server.bind('open', function() {
				log( "Connected." );
				send("/openConnection#" + myId + ">" + ServerId);
			});

			//OH NOES! Disconnection occurred.
			Server.bind('close', function( data ) {
				log( "Disconnected." );
			});

			//Log any messages sent from server
			Server.bind('message', function( payload ) {
				log( payload );

				var messageRecu = payload.split(' __ws__ ')[1];
				var clientId = payload.split(' __ws__ ')[0];

				/* Si une commande est reçue, on la traite */
				if(messageRecu.charAt(0) == '/')
				{
					var commande = messageRecu.split('#')[0];
					var tailleTab = messageRecu.split('#').length;
					var findeTab = messageRecu.split('#')[tailleTab-1];
					var idEnvoye = findeTab.split('>')[1];

					if(commande == "/yourIdIs"){
						if(myId == 0)
						{
							myId = messageRecu.split('#')[1];
						}
					}
					else
					{

						if(idEnvoye == myId)
						{
							switch (commande) {

								 case "/serveurReady":
								 	var salt = messageRecu.split('#')[1];
								 	verbose(salt);
								 	PromptLogin();
								 	PromptPassword();
								 	var MotdePasseSalt = MotdePasse+salt;
									var MotdePasseChiffre = CryptoJS.SHA1("MotdePasseSalt");
								 	send("/login#" + Login + "#" + MotdePasse + "#" + myId + ">" + ServerId);
								 break;

								 case "/loginOK":
								 	send("/getListAmis#" + myId + ">" + ServerId);
								 break;

								 case "/listeDesConnectes" :
								 	verbose("ok j'ai bien recu la liste des connectes");
								 break;

								 case "/conversationWith" :
								 	verbose(" J'ai bien recu la conversation");
								 break;

								 default: 
								 	verbose("Commande invalide");
								 break;
							}
						}
					}
				}

			});

		

			PromptMessage();
			Server.connect();
		});
	</script>
</head>

<body>
	<div id='body'>
		<textarea id='log' name='log' readonly='readonly'></textarea><br/>
		<input type='text' id='message' name='message' />
		<input type='button' id='usernickname' name='usernickname' onclick="demandeDeConversation();" value="test"/>
		<input type='button' id='envoyermessage' name='envoyermessage' onclick="envoiduMessage();" value="messageaenvoyer"/>
	</div>
</body>

</html>